//
//  UIScrollView+windmill.h
//  ExcellentHome
//
//  Created by mac on 2017/12/14.
//  Copyright © 2017年 陈区. All rights reserved.
//

#import <UIKit/UIKit.h>
@interface UIScrollView (windmill)
-(void)addWindmillInSuperView:(UIView *)superView;//在viewDidLoad或viewDidAppare中调用此方法,放在父view加tableview之前, 会同时添加上拉和下拉
-(void)startAnimatingWindmill:(void(^)(BOOL canHeaderFresh, BOOL isFooter))canfreshBlock;//canHeaderFresh是否需要刷新数据和界面
-(void)stopAnimatingWindmill;
-(void)draggingScrollViewInOffsety:(CGFloat)offsety;//将此方法放在scrollViewDidScroll:中

-(void)justShowHeader;//只显示头部,会删除上拉加载视图,在addWindmillInSuperView后调用
-(void)justShowfooter;//只显示底部,会删除下拉刷新视图,在addWindmillInSuperView后调用
-(void)addHeaderInSuperView:(UIView *)superView;//可单独添加下拉刷新视图
-(void)addFooterInSuperView:(UIView *)superView;//可单独添加上拉加载视图
-(void)justStartAnimatingWindmill;//一般用于第一次加载时，内部已处理

//在有背景色的tableview中显示大风车刷新效果
-(void)showWindMillInUnclearBackColorView;
#pragma mark- 为了配合之前UIScrollView+MJRefresh的方法特别增加的方法，如果不用UIScrollView+MJRefresh则忽略
-(void)segWindmillSetTarget:(id)target action:(SEL)action;//header
-(void)segWindmillSetRefreshBlock:(void(^)())callback;//header
-(void)segWindmillSetFooterBlock:(void(^)())callback;//footer
-(void)segWindmillSetFooterTarget:(id)target action:(SEL)action;//footer

-(void)segWindmillStartAction;

-(BOOL)isCanrefresh;//是否可刷新
-(CGFloat)windmillHeight;
-(void)isMjRefresh;
-(void)checkActionForShowView;
-(void)canrefreshAction;//下拉刷新，不需要拖拽即可刷新，用在segWindmillStartAction之前
@end
/**J
 *
 注意⚠️：以下步骤只针对使用UIScrollView+windmill的类，如果使用UIScrollView+MJRefresh，则比较复杂，需要参照使用过UIScrollView+MJRefresh的类。
 1.在viewDidlLoad或viewDidAppare中添加[self.tableView addWindmillInSuperView:self.tableView的父view];
 如果需要删除或隐藏相应的视图在调用addWindmillInSuperView:后再调用justShowHeader或者justShowfooter
 
 2.添加代码
 -(void)scrollViewDidScroll:(UIScrollView *)scrollView{
 [scrollView draggingScrollViewInOffsety:scrollView.contentOffset.y];
 }
 
 3.添加代码
 -(void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset{
          [scrollView startAnimatingWindmill:^(BOOL canHeaderFresh, BOOL isFooter) {
                if (isFooter) {//上拉加载
                    if (canHeaderFresh) {//可刷新
 
                      }
                 }else{//下拉刷新
                    if (canHeaderFresh) {//可刷新
 
                     }
                }
 
        }];
 }
 
 4.在相应的地方调用stopAnimatingWindmill停止刷新动效，一般在访问刷新的数据接口后停止。
 */
